package bookstudytest.functioninterface;

import java.util.function.Predicate;

/**
 * @Author li.heng
 * @Date 2019/6/21 15
 * @Description:
 **/
public class PredicateDemo {
    public static void main(String[] args) {
        System.out.println(check(null));
    }
    private static boolean check(Integer num){
        // 使用静态方法根据一个参数初始化
        Predicate<Object> equal = Predicate.isEqual(num);
        // 使用一个lambda表达式初始化
        Predicate<Integer> checkNum = (i)->i>1;
        // 将两种判断取逻辑或（有短路）default方法
        Predicate<Integer> or = checkNum.or((i -> i < -1));
        // 将两种判断取逻辑与（有短路）default方法
        Predicate<Integer> and = or.and((i) -> i == 1);
        // 将判断取反
        Predicate<Integer> negate = and.negate();
        return or.test(num);
    }
}
